/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.escom.administracion.dao.hibernate;

import com.escom.administracion.dao.DocenteDispositivoDAO;
import com.escom.administracionperfiles.hbm.dto.DocenteDispositivo;
import com.escom.cliente.exception.DAOException;
import com.escom.hibernate.template.AdminSoportHibernate;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author yamil
 */
public class DocenteDispositivosDAOHBM  extends AdminSoportHibernate implements DocenteDispositivoDAO,Serializable{

    @Override
    public void create(DocenteDispositivo docente) throws DAOException {
       save(docente);
    }

    @Override
    public void edit(DocenteDispositivo docente) throws DAOException {
       update(docente);
    }

    @Override
    public void remove(DocenteDispositivo docente) throws DAOException {
       delete(docente);
    }

    @Override
    public DocenteDispositivo find(Object id) throws DAOException {
       return find(id);
    }

    @Override
    public List<DocenteDispositivo> findAll() throws DAOException {
       return findAll(DocenteDispositivo.class);
    }

    @Override
    public int count() {
       return count();
    }

    @Override
    public List<DocenteDispositivo> finDocenteBoletDispositivo(int boleta, String direccionMac) throws DAOException {

        List<DocenteDispositivo> l=null;
        Session session = getSession();
        Criteria query = session.createCriteria(DocenteDispositivo.class);
        query.add(Restrictions.and(Restrictions.eq("id.boleta", boleta),Restrictions.eq("id.direccionmac", direccionMac)));
        query.setMaxResults(1);
        l=query.list();
        session.close();
         return l;
    }
    @Override
    public List<DocenteDispositivo> finDocenteBoletDispositivo(int boleta) throws DAOException {

        List<DocenteDispositivo> l=null;
        Session session=getSession();
        Criteria query = session.createCriteria(DocenteDispositivo.class);
        query.add(Restrictions.eq("id.boleta", boleta));
        query.setMaxResults(1);
        l=query.list();
        session.close();
         return l;
    }


    @Override
    public boolean finDocenteBoletANDMacDispositivo(int boleta, String direccionMac) throws DAOException {
        DocenteDispositivo l=null;
         Session session=getSession();
        Criteria query = session.createCriteria(DocenteDispositivo.class);
        query.add(Restrictions.and(Restrictions.eq("id.boleta", boleta),Restrictions.eq("id.direccionmac", direccionMac)));
        query.setMaxResults(1);
        if(!query.list().isEmpty())
        l=(DocenteDispositivo) query.list().get(0);
        session.close();
        return l!=null?true:false;
    }



}
